# import tiktoken
# # 具体tokenizer模型
# enc = tiktoken.get_encoding("cl100k_base")
# assert enc.decode(enc.encode("hello world")) == "hello world"
# text = "你是谁？"
# # 具体的chat模型
# enc = tiktoken.encoding_for_model("gpt-4o")
# enc.encode(text) #  获取字典值，[31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773]
# len(enc.encode(text)) # 获取长度，8


# 运行前请 pip install tiktoken
from dashscope import get_tokenizer  # dashscope版本 >= 1.14.0
import os

os.environ["DASHSCOPE_API_KEY"] = 'sk-965dc39b016c49ecbe29de180f4db2b6'
# 获取tokenizer对象，目前只支持通义千问系列模型
tokenizer = get_tokenizer('qwen-turbo')

input_str = '通义千问具有强大的能力。'

# 将字符串切分成token并转换为token id
tokens = tokenizer.encode(input_str)
print(f"经过切分后的token id为：{tokens}。")
# 经过切分后的token id为： [31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773]
print(f"经过切分后共有{len(tokens)}个token")
# 经过切分后共有8个token

# 将token id转化为字符串并打印出来
for i in range(len(tokens)):
    print(f"token id为{tokens[i]}对应的字符串为：{tokenizer.decode(tokens[i])}")
